package com.alter.system.service;

import java.util.List;

import com.alter.model.SeNavBar;

public interface SysUIService {

    /**
     * 获取所有一级导航。
     * 
     * @return
     */
    public List<SeNavBar> getSysNavBarList();

    /**
     * 获取导航的下级导航集合
     * 
     * @see getsystemNavTree(SeNavBar bar) 
     * @param headerNavAid
     * @return
     */
    public List<SeNavBar> getChildNavList(String headerNavAid);

    /**
     * 获取bar 下面的所有子导航, 当bar 为空时是系统整个导航。
     * 
     * @param bar
     *            为父导航 如果没有可为 null
     * 
     * @return
     */
    public List<SeNavBar> getsystemNavTree(SeNavBar bar);
    
    
    /**
     * 获取导航父节点
     *  
     * @param barCode 当前节点Code 
     * @return
     * 
     * @deprecated for 因为系统设计code 不是唯一的，所以并不能确定唯一路径
     */
    public List<SeNavBar> getsystemParentNavTree(String barCode);
    
    /**
     * 获取所有的SeNavBar
     * @return
     */
    public List<SeNavBar> getAllSeNavBar();
    
    /**
     * 更新節點
     * @param bar
     * @return 更新是否成功    默認 true
     */
    public SeNavBar updateSeNav(SeNavBar bar);
    
    /**
     * 创建一个新的导航
     * @param bar
     */
    public void createSeNav(SeNavBar bar);
    
    /**
     * 删除导航 ，如果不是必须删除可以考虑将其isEnabled 设置为false
     * @param bar
     */
    public void delSeNav(SeNavBar bar);
    
    
}
